<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

include_once('ExceptionDAO.php');
include_once 'util/MapError.php';

/**
 * DAO para operações de banco para preço do item
 * @author Douglas Rafael
 *
 */
class DAOPreco extends CI_Model {

    /**
     * Método para <b>Listar</b> o preço do item de acordo com o código
     * @param type $codigo
     * @return array
     * @throws ExceptionDAO 
     */
    public function get($codigo) {
        try {
            $this->db->where('codigo', $codigo);
            $result = $this->db->get('item_preco');

            $preco = new TOPreco();
            if ($value = $result->row()) {
                
                $preco->codigo = $value->codigo;
                $preco->total_disponivel = $value->total_disponivel;
                $preco->valor_venda = $value->valor_venda;
                $preco->valor_especial = $value->valor_especial;
                $preco->data_inicio_especial = $value->data_inicio_especial;
                $preco->data_fim_especial = $value->data_fim_especial;

                
                return $preco;
            } else {
                throw new ExceptionDAO('Não foi possível obter o preço do item.');
            }
        } catch (Exception $e) {
            $num = $this->db->_error_number();
            $msg = $this->db->_error_message();

            //Traduz o tipo de erro de acordo com $num
            $erro = new MapError();
            throw new ExceptionDAO($erro->getError($num, $msg));
        }
    }

}